{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## K-Nearest Neighbors\n",
    "This notebook will start by covering what K-Nearest Neighbors (KNN) is, how it works, and how to use KNN in Python. Throughout this notebook we will also go over what pipelines are and how to use them. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### What is K-Nearest Neighbors\n",
    "\n",
    "K-nearest neighbors is a model that uses the \"K\" most similar observations in order to make a prediction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<video src=\"images/KNN-Classification.mp4\" controls  >\n",
       "      Your browser does not support the <code>video</code> element.\n",
       "    </video>"
      ],
      "text/plain": [
       "<IPython.core.display.Video object>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Video\n",
    "\n",
    "# Couldn't identify the source of this video. \n",
    "Video(\"images/KNN-Classification.mp4\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here is roughly how K-Nearest Neighbors works:\n",
    "1. User specifies value for K. In this example above, we choose K=5 neighbors around black point.\n",
    "2. Search for the K observations in the data that are nearest to the measurements of an unknown sample\n",
    "    * Euclidian distance is often used as the distance metric\n",
    "3. Use the most popular target value from the K nearest neighbors as the predicted target value. In the example above, out of 5 nearest neighbors of black point, 2 are brown and 3 are green. Since we have a majority of green points around this black point we assign green label to it."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>Advantages of KNN</b>\n",
    "\n",
    "Easier to understand and explain than other machine learning algorithms\n",
    "\n",
    "Can be used for classification or regression\n",
    "\n",
    "<b>Disadvantages of KNN</b>\n",
    "\n",
    "It must store all of the training data. \n",
    "\n",
    "Its prediction phase can be slow when n is large\n",
    "\n",
    "Typically worse performance than other supervised learning methods"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from matplotlib.colors import ListedColormap\n",
    "\n",
    "# For scaling data\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.pipeline import make_pipeline\n",
    "from sklearn.decomposition import PCA\n",
    "\n",
    "from sklearn.datasets import load_iris\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "from sklearn import metrics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load Data\n",
    "The Iris dataset is one of datasets scikit-learn comes with that do not require the downloading of any file from some external website. The code below loads the iris dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal length (cm)</th>\n",
       "      <th>sepal width (cm)</th>\n",
       "      <th>petal length (cm)</th>\n",
       "      <th>petal width (cm)</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  \\\n",
       "0                5.1               3.5                1.4               0.2   \n",
       "1                4.9               3.0                1.4               0.2   \n",
       "2                4.7               3.2                1.3               0.2   \n",
       "3                4.6               3.1                1.5               0.2   \n",
       "4                5.0               3.6                1.4               0.2   \n",
       "\n",
       "   target  \n",
       "0       0  \n",
       "1       0  \n",
       "2       0  \n",
       "3       0  \n",
       "4       0  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = load_iris()\n",
    "df = pd.DataFrame(data.data, columns=data.feature_names)\n",
    "df['target'] = data.target\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Arrange Data into Features Matrix and Target Vector"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For demonstrational purposes, we are going take two features "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = df.loc[:, ['sepal length (cm)', 'sepal width (cm)']]\n",
    "#X = df.loc[:, df.columns != 'target']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150, 2)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = df.loc[:, 'target'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150,)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Split the data into training and testing sets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(X,\n",
    "                                                    y,\n",
    "                                                    random_state = 0,\n",
    "                                                    test_size = .2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### KNN in `scikit-learn`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>Step 1:</b> Import the model you want to use\n",
    "\n",
    "In sklearn, all machine learning models are implemented as Python classes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>Step 2:</b> Make an instance of the Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "knn = KNeighborsClassifier(n_neighbors=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "KNeighborsClassifier()\n"
     ]
    }
   ],
   "source": [
    "print(knn)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>Step 3:</b> Train the model on the data, storing the information learned from the data. Model is learning the relationship between features and labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier()"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>Step 4:</b> Predict the labels of new data\n",
    "\n",
    "Uses the information the model learned during the model training process"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "predictions = knn.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 1, 0, 2, 0, 2, 0, 2, 1, 2, 2, 2, 2, 2, 2, 0, 2, 1, 0, 0, 1, 1,\n",
       "       0, 0, 2, 0, 0, 2, 1, 0])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# calculate classification accuracy\n",
    "score = knn.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6666666666666666"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualizing Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, '3-Class classification (k = 5)')"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cmap_light = ListedColormap(['orange', 'cyan', 'cornflowerblue'])\n",
    "cmap_bold = ListedColormap(['darkorange', 'c', 'darkblue'])\n",
    "h = .02  # step size in the mesh\n",
    "\n",
    "\n",
    "# Plot the decision boundary. For that, we will assign a color to each\n",
    "# point in the mesh [x_min, x_max]x[y_min, y_max].\n",
    "x_min, x_max = X_train.loc[:, 'sepal length (cm)'].values.min() - 1, X_train.loc[:, 'sepal length (cm)'].values.max() + 1\n",
    "y_min, y_max = X_train.loc[:, 'sepal width (cm)'].values.min() - 1, X_train.loc[:, 'sepal width (cm)'].values.max() + 1\n",
    "\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
    "                     np.arange(y_min, y_max, h))\n",
    "\n",
    "Z = knn.predict(np.c_[xx.ravel(), yy.ravel()])\n",
    "\n",
    "# Put the result into a color plot\n",
    "Z = Z.reshape(xx.shape)\n",
    "plt.figure()\n",
    "plt.pcolormesh(xx, yy, Z, cmap=cmap_light, shading='nearest')\n",
    "\n",
    "# Plot also the training points\n",
    "plt.scatter(X_train.loc[:, 'sepal length (cm)'].values,\n",
    "            X_train.loc[:, 'sepal width (cm)'].values,\n",
    "            c=y_train,\n",
    "            cmap=cmap_bold,\n",
    "            edgecolor='k',\n",
    "            s=20)\n",
    "plt.xlim(xx.min(), xx.max())\n",
    "plt.ylim(yy.min(), yy.max())\n",
    "plt.title(\"3-Class classification (k = 5)\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(220, 280)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xx.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualizing Data (YouTube Thumbnail)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Qfz5558Wi2BmZv369QwZMiTNscDAQDp27OiSPtxRuXLl+PDDD9McS0xMpH///owdO5aYmJhsY1y6dIl3332XVq1aZfi4K95vbvL29qZBgwZpjn3++eds3LjR5lg50aVLF/r27Zvm2IkTJ+jYsSO7d+/O9LywsDAGDRpkUVwtXbo0Y8aMcUCmeUf6tdBWrFjh8D7/85//MG3atDTvfdHR0XTv3p3ly5c7vP871caNGwkJCWHEiBFs3LjR6umfGzdupEmTJixdutTisQkTJmQ49TI7mzdvTvN+5uvrqwKPiBW0TbqI2Cw5OZnvv/+e77//nuLFi9O2bVsaNGhAjRo1KFKkCAEBASQlJREdHc3x48fZuXMnCxcuzPAbXR8fH3788UeL0RHOULx4cdavX0/Xrl0tik5r166lefPmhISE0K1bN5o1a0ZQUBBBQUF4e3sTFRXFyZMn2bFjB6tXr+bgwYMOz/fVV1/lxx9/JDU19daxn3/+mQ0bNvDEE0/QokULgoKCiImJ4eTJkyxZsoR58+bd+gfez8+P5557jg8++MCmfk+dOsWrr77Kq6++Su3atWnRogUNGjQgODiYIkWK4Ofnx40bNzh16hSbN2/ml19+sZh/HxISwvDhw13aR27169ePl19+mY8++ijN8S+//JLZs2dzzz330Llz51ujH2JjY7l69Sr//PMPGzdu5K+//iIpKcnueVWuXJn7778/zcizyMhIOnbsSJ8+fejbty9Vq1bF29ubK1eusHXrVn755Zc037IOGTLE5hEzKSkpzJ07l7lz5+Lv70+7du1o2LAhderUISgoiICAAFJSUggLC2P//v0sWrQow+LnO++8YzEixZl9uKP//Oc/bN68mV9//fXWsZSUFN5++22mTp1K79696dixI2XKlCEgIICYmBguX77Mrl27+Pvvv9mwYQOpqalUqFAh0z5c9X4D8Mgjj6QpsIeHh9O6dWuCg4OpWrUq/v7+FmvlzJ071+Z+MvPtt9+ybdu2NH+zDh48SJMmTejTpw99+vQhJCQEHx8fLly4wMqVK/n555+5fv16mjgeHh58//33Lvn75kyPPvpomil527dv59y5c5QtW9ah/Q4bNowCBQowePDgW6PL4uLi6N27N3PmzLEoPIl1EhISmDZtGtOmTaN06dK0a9eO+vXrU716dQICAihUqBBxcXGEhYUR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OMjVWYiIiIjIneZ0Sj1XpyAiIm7AuHGOsLAwi+Mq8NgoOAhCx7s6CxERERG50wyL+MvVKYiIiBvYNb1rhsc1RUtERERERERExM2pwCMiIiIiIiIi4uZU4BERERERERERcXMq8IiIiIiIiIiIuDkVeERERERERERE3JwKPCIiIiIiIiIibk4FHhERERERERERN6cCj4iIiIiIiIiIm1OBR0RERERERETEzanAIyIiIiIiIiLi5lTgERERERERERFxcyrwiIiIiIiIiIi4ORV4RERERERERETcnAo8IiIiIiIiIiJuTgUeERERERERERE3pwKPiIiIiIiIiIibU4FHRERERERERMTNqcAjIiIiIiIiIuLmVOAREREREREREXFzKvCIiIiIiIiIiLg5FXhERERERERERNycCjwiIiIiIiIiIm5OBR4RERERERERETenAo+IiIiIiIiIiJtTgUdERERERERExM2pwCMiIiIiIiIi4uZU4BERERERERERcXMq8IiIiIiIiIiIuDkVeERERERERERE3JwKPCIiIiIiIiIibk4FHhERERERERERN6cCj4iIiIiIiIiIm1OBR0RERERERETEzanAIyIiIiIiIiLi5lTgERERERERERFxcyrwiIiIiIiIiIi4ORV4RERERERERETcnAo8IiIiIiIiIiJuTgUeERERERERERE3pwKPiIiIiIiIiIibc6sCj8lkyvDm7+9vdYwlS5bQsmVLChQoQGBgIIMGDeLkyZMOzFpERERERERExLG8XJ2Ardq0acPw4cPTHPP29rbq3D/++IOBAwdSr149PvroIyIjI5k0aRKtWrUiNDSU0qVLOyJlERERERERERGHcrsCT8WKFXnkkUdsPi8pKYlnn32WcuXK8ffff98a9dOjRw8aNWrEW2+9xbRp0+ydroiIiIiIiIiIw7nVFK2bEhMTiYmJsemcdevWceHCBZ588sk0U7rq169P+/bt+eWXX0hKSrJ3qiIiIiIiIiIiDud2BZ65c+eSP39+ChYsSPHixXn22WeJjIzM9rzt27cD0KJFC4vHmjdvTlRUFEeOHLF7viIiIiIiIiIijuZWU7SaNm3KoEGDqFy5MlFRUSxZsoTJkyezbt06Nm3alOViyxcuXACgTJkyFo/dPHb+/Hlq1apl8fi0adNuTd+6Gm2PKxERERERERERsR+3KvBs3bo1zf3HHnuMunXrMmbMGD777DPGjBmT6bmxsbEA+Pj4WDzm6+ubpk16w4cPv7Wwc+OKphzlLiIiIiIiIiLiKG43RSu9l19+mXz58rF48eIs2+XPnx+AhIQEi8fi4+PTtBERERERERERcSduX+Dx9vamdOnShIWFZdnu5hbo58+ft3js5rGMpm+JiIiIiIiIiOR1bl/giY+P59y5c5QoUSLLdk2aNAFg8+bNFo9t2bKFQoUKUbVqVYfkKCIiIiIiIiLiSG5T4Ll27VqGx9944w2Sk5O59957bx27ePEihw4dSrOmTrt27ShVqhTffvttmi3W9+zZw9q1axk0aBDe3t6OuwAREREREREREQdxm0WWx48fz5YtW+jQoQPly5cnJiaGJUuWsGbNGpo1a8azzz57q+2rr77KrFmzWLNmDe3btwfMU7k+++wz7r//ftq0acOwYcOIiopi4sSJBAUFMW7cOBddmYiIiIiIiIhI7rhNgad9+/YcOHCAWbNmce3aNTw9PalSpQoTJkzghRdeuLUTVlYGDRqEn58f48eP56WXXsLHx4dOnTrxwQcfaP0dEREREREREXFbJsMwDFcn4U4aVzQROt7VWYiIiIjInWZYRMZLEoiIiNxu1/SuhIaGWhx3mzV4REREREREREQkYyrwiIiIiIiIiIi4ORV4RERERERERETcnAo8IiIiIiIiIiJuTgUeERERERERERE3pwKPiIiIiIiIiIibU4FHRERERERERMTNqcAjIiIiIiIiIuLmVOAREREREREREXFzKvCIiIiIiIiIiLg5FXhERERERERERNycCjwiIiIiIiIiIm5OBR4RERERERERETenAo+IiIiIiIiIiJtTgUdERERERERExM15uToBEREREZG72bCIa65OQURE7gAq8IiIiIiIuIAKOyIiYk+aoiUiIiIiIiIi4uZU4BERERERERERcXOaoiUiIiIi4kSamiUiIo6gAo+IiIiIiBOosCMiIo6kKVoiIiIiIiIiIm5OI3hERERERBxII3dERMQZVOAREREREXEAFXZERMSZNEVLRERERERERMTNqcAjIiIiIiIiIuLmNEVLRERERMSONDVLRERcQQUeERERERE7UGFHRERcSVO0RERERERERETcnAo8IiIiIiK5pNE7IiLiairwiIiIiIiIiIi4Oa3BIyIiIiKSQxq5IyIieYVG8IiIiIiIiIiIuDkVeERERERERERE3JwKPCIiIiIiIiIibk4FHhERERERERERN6cCj4iIiIiIiIiIm1OBR0RERERERETEzanAIyIiIiIiIiLi5lTgERERERERERFxcyrwiIiIiIiIiIi4ORV4RERERERERETcnAo8IiIiIiIiIiJuTgUeERERERERERE3pwKPiIiIiIiIiIibc9sCT2xsLCEhIZhMJp555hmrzmnfvj0mkynDW2hoqIMzFhEREZE7xbCIawyLuObqNERERG7xcnUCOfXmm28SFhZm83nFihVj4sSJFscrVqxoj7RERERERERERJzOLQs8O3fuZNKkSXz44Ye8+OKLNp1boEABHnnkEQdlJiIiIiJ3Mo3aERGRvMrtpmilpKQwbNgwunfvTv/+/XMUIzU1laioKAzDsHN2IiIiInIn0pQsERHJ69yuwDNx4kQOHTrE5MmTc3T++fPn8ff3p3Dhwvj7+9O/f38OHTpk5yxFRERERERERJzHraZonTx5krFjx/Lmm28SHBzMqVOnbDo/JCSEVq1aUbduXTw9Pdm6dSuTJ09m9erVbNiwgTp16mR43rRp05g2bRoAV6NzexUiIiIiIiIiIvZlMtxonlL37t05d+4cu3btwtvbm1OnThESEsLTTz+d4xE9f//9N+3bt6djx46sXLky2/aNK5oIHZ+jrkRERETEzWhaloiI5DW7pnfNcCdwtxnBM3v2bFasWMH69evx9va2W9w2bdrQtm1b1qxZQ1xcHH5+fnaLLSIiIiLuSYUdERFxN26xBk9CQgIvvPACPXv2pGTJkhw7doxjx45x+vRpACIjIzl27BgRERE5ih8cHExKSgrh4eF2zFpERERE3I0WUxYREXflFgWeuLg4rl69yuLFi6lSpcqtW/v27QHz6J4qVarw7bff5ij+0aNH8fLyIjAw0I5Zi4iIiIi7UGFHRETcnVtM0SpQoAC//fabxfGrV68yatQounfvzhNPPEHdunUBuHjxIpGRkZQvX578+fMD5lE+/v7+eHp6pomxePFiNm7cSI8ePfD19XX8xYiIiNxBLobD+XDw9YaqpSCfW3yyEBEREbnzuMXHMG9vbwYOHGhx/OYuWpUqVUrz+KuvvsqsWbNYs2bNrVE+a9as4YUXXuDee++lYsWKeHl5sW3bNmbPnk2xYsWY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znz55ZeX3V+6dGm6dOkCwDPPPMOMGTOIiYkhOjoagKCgICZNmsStt95Ku3btGDp0KHFxcUyYMIGSJUvy0ksvefsliYj4j86dzV9Hj8LBgxAcDLVrQ1iYrzMTERERERH8qMCz9t8hn//88w/33HNPpvvbt2+fUeBxZMCAAYSFhTFu3DieeOIJQkJC6NSpE2+88Ybm70i+om1ZkmvKljV/iYiIiIhInmIxDEOfBD3QrJqF2HG+zkIkayrsiIiIiDfpmHQREe9bP60rsbGxmW73qxk8IiIiIiIiIiKSmd9s0RIRx9S5IyIiIr4wZXgUoE4eEZG8QAUeET+mwo6IiIiIiIiAtmiJiIiIiIiIiPg9FXhERERERERERPyctmiJ+CFtzRIREZG8RLN4RER8Tx08IiIiIiIiIiJ+Th08In5EnTsiIiIiIiKSFXXwiPgJFXdERERERETEERV4REREREQkR0wZHpUxj0dERLxLBR4RERERERERET+nGTwieZy2ZomIiIiIiIgrKvCI5FEq7IiIiIiIiIi7tEVLRERERERERMTPqYNHJI9R546IiIj4u/RBy0M+OOPjTERECg518IiIiIiIiIiI+DkVeERERERERERE/Jy2aInkEdqaJSIiIiIiItmlAo+Ij6mwIyIiIvmVZvGIiHiPtmiJiIiIiIiIiPg5dfCI+Ig6d0RERERERCSnqMAj4mUq7IiIiIiIiEhO0xYtERERERERERE/pwKPiIiIiIjkqinDozIGLouISO7QFi0RL9HWLBEREREREckt6uAREREREREREfFz6uARyWXq3BEREREREZHcpg4ekVyk4o6IiIjIfzSHR0Qk96jAIyIiIiIiIiLi51TgERERERERERHxc5rBI5ILtDVLREREREREvEkFHpEcpMKOiIiIiHPpc3iGfHDGx5mIiOQv2qIlIiIiIiIiIuLn1MEjkgPUuSMiIiIiIiK+pA4eERERERERERE/pwKPiIiIiIiIiIif0xYtkaugrVkiIiIi2aNhyyIiOUsFHpFsUGFHRERERERE8hJt0RIRERERERER8XPq4BHxgDp3REREREREJC9SgUfEDSrsiIiIiOQOzeIREckZ2qIlIiIiIiIiIuLnVOAREREREREREfFz2qIl4oS2ZomIiIiIiIg/UAePiIiIiIj43JThURnzeERExHN+U+B57bXXGDBgANWqVcNisVClShWPY0RHR2OxWLL8FRsbm/NJi9+yDDTUvSMiIiIiIiJ+w2+2aD377LNERUXRpEkTzp07l+04JUqUYMKECZlur1at2lVkJ/mJCjsiIiIiIiLib/ymwLNnz56MIkz9+vWJj4/PVpyIiAjuvPPOnExNRERERERERMSn/GaLVk522NjtduLi4jAMdWqIiIiIiIiIiP/zmwJPTjl8+DCRkZEUKVKEyMhIbrzxRrZv3+7rtCQP0NwdEREREd/TsGURkezxmy1aOaFq1aq0adOGhg0bYrVaWb16Ne+99x6LFi1ixYoVNGjQIMvHTZ48mcmTJwNw8oI3MxZvUFFHRERERERE/J3F8MN9SukzePbv33/VsZYvX050dDQdO3bkt99+c7m+WTULseOu+mklD1GBR0RERCTvGfLBGV+nICKSJ62f1jXLk8ALVAdPVtq1a8f1119PTEwMiYmJhIWF+Tol8RIVdkRERERERCS/KHAzeLJSpUoV0tLSOHv2rK9TERERERERNItHRMRTKvAAu3btIjAwkKgo/QMiIiIiIiIiIv4nX27ROnr0KOfPn6dSpUqEh4cDcP78eSIjI7FarZetnTdvHn/88Qc9evQgNDTUF+mKl2lrloiIiIiIiOQ3flPgmTlzJgcOHADg5MmTpKSkMG6cOe24cuXK3HXXXRlrn3nmGWbMmEFMTAzR0dEAxMTEMGrUKPr06UO1atUIDAxkzZo1fP7555QoUYKJEyd6+yWJl6mwIyIiIiIiIvmV3xR4pk6dytKlSy+7bfTo0QC0b9/+sgJPVmrXrk3Tpk35+eefOX78OKmpqVSoUIEHHniAZ599lvLly+da7iIiIiIikj3pc3h0qpaIiHN+eUy6L+mYdP+jzh0RERER/6cCj4iIScekS4Gjwo6IiIiIiIgUFDpFS0RERERERETEz6nAIyIiIiIiuWLIB2e0tUpExEu0RUvyHW3NEhEREclb0os86QOTs0PDlkVEnFMHj4iIiIiIeIWKMyIiuUcdPJJvqHNHREREJO/LiW4eERHJTB08ki+ouCMiIiLiXzSfR0QkZ6nAIyIiIiIiPuNpoWfK8Ch1/4iIZEEFHhERERERERERP6cZPOLXtDVLREREJH/QbB4RkaujAo/4JRV2RERERPInFXpERLJHW7RERERERCTPcTWbRwUgEZHLqYNH/Io6d0REREQKFnX0iIi4Rx08IiIiIiKS5+lYdRER51TgERERERERERHxc9qiJX5BW7NEREREBLRlS0TEERV4JE9TYUdERETEf6UXYXJja9WQD87kanwREX+jAo+IiIiIiPglFXZERP6jAo/kSercEREREREREXGfCjySp6iwIyIiIiIiIuI5naIlIiIiIiIiIuLnVOAREREREREREfFz2qIleYK2ZomIiIiIiIhknzp4RERERERERET8nDp4xKfUuSMiIiIiIiJy9dTBIz6j4o6IiIiIiIhIzlCBR0RERERERETEz6nAIyIiIiIiIiLi5zSDR7xOW7NEREREREREcpYKPOI1KuyIiIiIiIiI5A5t0RIRERERERER8XPq4JFcp84dERERERERkdylDh4REREREclVU4ZHMWV4lK/TEBHJ11TgERERERERERHxc9qiJblGW7NEREREREREvEMFHslxKuyIiIiIiIiIeJe2aImIiIiIiIiI+Dl18EiOUeeOiIiIiIiIiG+owCNXTYUdEREREREREd/SFi0RERERERERET+nAo+IiIiIiIiIiJ/TFi3JNm3NEhEREREREckb1MEjIiIiIiIiIuLn1MEjHlPnjoiIiIiIiEjeog4e8YiKOyIiIiIiIiJ5jwo8IiIiIiIiIiJ+zm8KPK+99hoDBgygWrVqWCwWqlSpkq048+fPp3Xr1kRERBAVFcWAAQPYt29fziYrIiIiIiIiIuJFfjOD59lnnyUqKoomTZpw7ty5bMX47rvvuPnmm2nUqBFvvvkm58+fZ+LEibRp04bY2FjKlSuXs0nnI9qaJSIiIiIiIpJ3+U2BZ8+ePVSrVg2A+vXrEx8f79HjU1NTGTlyJBUrVmT58uVERkYC0KNHD5o2bcqYMWOYPHlyjuft71TYEREREREREcn7/GaLVnpxJ7uWLl3KkSNHGDJkSEZxB6Bx48ZER0cza9YsUlNTrzZNERERERFxYMrwKF+nICKSb/lNgedqrV27FoBWrVpluq9ly5bExcWxc+dOb6eVZ1kGGureEREREREREfETfrNF62odOXIEgPLly2e6L/22w4cPU69evUz3T548OWP71vYTETR7p04uZpo3NH2nma9T8BsnT56kZMmSvk5DxKv0vpeCSO97KYhy432/PkejieQ8/X0ved3+/fuzvL3AFHgSEhIACAkJ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5aGHHtKx6ZIvPfbYY6xatYoOHTpQqVIl4uPjmT9/PjExMVx33XXExMRkzCwRyS8mT57M/fffT7169bj33ntJSUnhww8/5OjRo/z888907drV1ymK5IojR45QqVIlmjZtmmnAvkh+c+DAAZo0acLZs2e54447aNOmDWfOnOGTTz5h//79vP/++wwfPtzXaYq4RadoiYiIS9HR0WzdupUZM2Zw+vRprFYrNWvW5JVXXmHUqFGEhob6OkWRHDds2DBKlCjB+PHjGT16NAEBAbRq1Yovv/ySNm3a+Do9kVzz6aefkpaWpuHKUiBUrlyZNWvWMHbsWBYtWsTXX39NWFgYjRs35u233+bGG2/0dYoiblMHj4iIiIiIiIiIn9MMHhERERERERERP6cCj4iIiIiIiIiIn1OBR0RERERERETEz6nAIyIiIiIiIiLi51TgERERERERERHxcyrwiIiIiIiIiIj4ORV4RERERERERET8nAo8IiIikieMGTMGi8WCxWJhyZIlPo9TkERHR2dcM1+YO3cuFouF0NBQDh8+7JMcclpaWhq1a9fGYrHwzDPP+DodEREpAFTgEREREclnlixZwpgxYxgzZgz79+/3dTpOJSUlMWrUKACGDRtG+fLlfZxRzrBarTz//PMAvPPOO+zevdvHGYmISH6nAo+IiIhIPrNkyRJeeuklXnrppTxf4Pnggw/Yv38/oaGh/O9///N1Ojlq4MCB1KpVi5SUFEaPHu3rdEREJJ9TgUdEREREfCIxMZHXX38dgEGDBlGuXDkfZ5SzrFYrTz31FACzZs1i69atPs5IRETyMxV4RERERMQnPvvsM06ePAnA3Xff7eNscseAAQMIDQ3FMAwmTpzo63RERCQfU4FHRERERHziww8/BKB69eq0atXKx9nkjsKFC9OnTx8APv/8cy5cuODjjEREJL9SgUdERMSL0tLSmDlzJn369KFixYqEhoYSFhZGxYoVadKkCcOGDeO7774jISHBaZwtW7YwatQoGjduTFRUFCEhIZQvX56+ffvyxRdfYLfbHT52//79GScmDRo0KOO2UaNGUbt2bSIiIoiKiqJNmzZ8+OGHpKWlOc3FZrOxcOFCHn/8cdq2bUupUqUIDg6mUKFC1KpVi0GDBrFs2TKPr5U3pKSkMHXqVPr27Zvx9ShatCgNGzbk8ccfdzm/ZtCgQRnXMn3twoUL6devHxUqVCAkJIRy5coxYMAAVq9e7VZOFy5cYOzYsTRu3JhChQpRpEgRGjVqxEsvvcTp06cBx6depZ8g9tJLL2Xc1qFDh4y16b+io6Nd5jFr1iy6dOlCmTJlCAkJoXLlygwePJjt27e79Tpc2bRpExs2bADMWTXuOnLkCGPGjKFt27aUKVMm471Wv3597r33Xr7//ntsNlumx1352s+dO8e4ceNo3LgxRYoUISoqitatW2f552fjxo3cd9991KxZk7CwMEqVKsWNN97IunXr3Mr5jjvuAMwtad98843br1VERMQjhoiIiHjFyZMnjebNmxuAy19z587NMkZqaqrx8MMPGwEBAU4f36JFC+Po0aNZxti3b1/GunvuucdYuHChUaRIEYexmjdvbpw6dcrh64qOjnbrNd1zzz1GcnKywzgvvvhixtqYmBhPLm224qxdu9aoWrWq05yDg4ONjz76yGGMe+65J2Ptnj17jAcffNBhrICAAGPKlClOc9+0aZNRoUIFhzEqVapkbNiwwWjfvn3GbY5eu7Nf7du3v+xxl8ZLTEw0+vXr5/CxISEhxvz5811+HVwZO3ZsRszFixe79ZjXX3/dCA0Ndfn6Pv3000yPvfS1b9myxenXfvDgwYbdbjcMwzA+/PBDIzAwMMt1gYGBDv+sXurcuXOGxWIxAOOGG27w5DKJiIi4LdBp9UdERERyzNChQ1m7di0ANWrU4Pbbb6dWrVqEhYURFxfHjh07WLZsmcNOD8MwuOWWW5g7dy4AJUuW5Pbbb+faa68lIiKCAwcOMGvWLGJjY1mzZg2dOnVi7dq1hIeHO8zpwIED3HrrrcTFxTFgwAC6detGeHg4GzduZMqUKZw6dYq1a9fSq1cvVqxYQWBg5m8dEhMTiYyMpFOnTjRt2pQqVaoQGhrK0aNH2bJlC1988QUXL15kxowZFC1aNE/MIfnzzz/p3LlzRqdUp06d6NGjBxUrViQpKYk///yTzz77jISEBB544AFCQkIyup0cef755/nqq6+oVasWd999NzVq1ODChQt89913LFiwALvdzvDhw2nTpg116tTJ9PgTJ07QuXNnjh8/DkDNmjUZNGgQ1atX5+zZs/z4448sWLCAG2+8kSJFimSZw2233Ubjxo35+uuvmTVrFgAvv/wy9evXv2xdiRIlHL6O9C6Ypk2bctttt1GpUiVOnTrFF198wcqVK0lOTubOO+9kx44dTuO48ttvvwEQEBBAs2bNXK4fOXIk7733Xsb/d+vWje7du1OuXDmSk5PZtWsXixcvZuXKlRiG4TDO+fPnueGGGzLe+126dCEyMpK//vqL999/n4sXLzJ9+nTatWtH4cKFefDBByldujT33nsvDRo0ICkpiW+++Yb58+djs9kYPHgwbdq0oWTJkg6fs0iRItSpU4dt27axaNEi0tLSsFqtHlwtERERN/i6wiQiIlIQHD9+PKPrplmzZkZ8fLzDtfv37zf279+f6faJEydmdA7069fPOH/+fJaPf/bZZzPWPf3005nuv7SDh3+7EL7//vssc65Xr17GurfeeivL5/v999+NhIQEh6/n1KlTRtu2bTO6WPbu3ZvlOm918MTFxRkVK1Y0ACMiIsJhN8quXbuMSpUqZaw7efJkpjWXdvAAxt13322kpqZmWvfwww9nrHnwwQezfL4777wzY80NN9xgJCUlZVozderUjE6Q9F/ZuQZXurSDBzCee+65jA6WdGlpaZd19rzxxhsu4zpis9mM8PBwAzDq1avncv2sWbMynrdYsWJOX9OOHTuMTZs2Zbr90tcXGhpq/Pbbb5nWLF++POP6VqlSxShevLjRsmVL4+zZs5nW3nvvvR5di0GDBmWs37Bhg8v1IiIintIMHhERES/Yu3dvxlyPgQMHEhER4XBt5cqVqVy58mW3JSUl8eqrrwJQp04dZs2aReHChbN8/CuvvEK7du0Ac4htUlKS09yeeOIJbrjhhky3lypViq+//jqj02DixIlZzuPp1KkTYWFhDuMXL16cGTNmAGC32/niiy+c5pPbPvnkEw4ePAiY16dHjx5ZrqtRowbTp08H4OLFi0yePNlp3Dp16vDJJ59k2eU0bty4jGu0cOHCTPcfO3aMr7/+GjCv+2effUZISEimdffee2+unzbVsWNHxo0bl2m+T0BAAG+++WbG/2f1Oty1d+/ejO6p2rVrO11rt9t54YUXMv7/66+/djpDqFatWpk6lq704osv0rlz50y3t23bli5dugDmXKr4+Hhmz55N0aJFM6196aWXMq6RO9fimmuuyfj9xo0bXa4XERHxlAo8IiIiXnDpNqktW7Z4/PiFCxdy4sQJ8hGSUAAADJ9JREFUAB5++GGCg4Odrr/zzjsBiIuLY9WqVQ7XWa1WHn30UYf3169fn27dugFw6NChjC1mnqpWrRplypQBcHvYcG6ZOXMmAGXLls0YfutIx44dKVeuHAC//vqr07UPPvigw69LoUKFMrYh7du3L1PRbd68eRmDgQcPHuyweAfwyCOPOM3jajmLX6NGDSpWrAjA1q1bs/0cBw4cyPh9VFSU07Xr1q1jx44dgDlcumvXrtl+XjDf8w888IDD+9u0aZPx+/Rh6FmpUKECVapUAdy7FsWKFcv4/aWvX0REJKdoBo+IiIgX1KtXj3LlynHkyBGmTp2KYRgMHTqUFi1aEBDg+ucty5cvz/h9fHw833//vdP1hw8fzvj9tm3bHHY81KtXj9KlSzuN1bFjR+bPnw/A2rVradmyZaY1cXFxfPHFF8yfP59NmzZx6tQpLl68mGW8Q4cOOX2+3HT+/PmM7omyZcvy448/unxMZGQkYF5HZ7K6LpcqX748YM5SOnfuXEbBCyA2Njbj9x06dHAa59prr6VIkSKcP3/e6brscud1HDx4kLNnz2b7Oc6cOZPxe1cFnhUrVmT8vm/fvtl+znS1a9fOsiMn3aV/Hlq0aOE0VunSpdm3b59b16J48eIZv7+aayciIuKICjwiIiJeYLVa+fjjj7nppptISUlh2rRpTJs2jaJFi9KqVSvatm1Lt27daNq0aZaPv/S47qeeesqj53b2YbJGjRouH3/pmiNHjmS6PyYmhoEDB3Ls2DG38omLi3NrXW44ePBgxla5v/76i/79+7v9WFcfyl0NHL50y9WVHTyXXtdq1aq5zKVq1ar8/fffLtdlh7uvIzk5OdvPceljCxUq5HTtpQXBS7c5ZdelhZasXPp1cnetO9fi0q6sxMREl+tFREQ8pQKPiIiIl/Tu3Zs1a9YwZswY5s2bR2pqKufOnWPBggUsWLCA5557jvr16/Pmm2/SvXv3yx57Nd0aKSkpDu9zdsJWukvnBcXHx192365du+jVq1fGB9batWvTo0cPatasSVRUFKGhoRlrhw0bxsmTJ7Oc4+MtV3MdU1NTnd7vTieWI5d2O3n6NclpV/M63HVpEcVVwe/S+9O7qa6GJ68vJ6/Fpe89ZzOrREREsksFHhERES9q1KgRc+fO5cKFC/zxxx+sXLmSZcuWsXLlSlJTU9m8eTM9e/Zk5syZl82HufSD7f79+zMNYc6u9EG3zlxafLjyA/Zrr72WUdx57rnnePnllzMN5003dOjQq8g0Z1ya/6BBgzKGKPvapQUbT78m/ujSbVmXbtfKyqWdL1cWGP2JJ9vSREREskNDlkVERHygUKFCdO/enbFjx7JkyRKOHj3KY489BpgzWkaNGnVZp0v6/BbI3pBmR3bv3u3RmvSBw+l+//13wDz5aezYsQ6LOxcuXHD5Qd4bcus6Xq1Lr+vevXtdrt+3b19uppPr0ocTg+sCT4UKFTJ+72oOUl526evMqQKtiIjIpVTgERERyQOKFy/OO++8k3HS0okTJ9i1a1fG/e3bt8/4/dy5c3Psebds2cLx48edromJicn4ffPmzS+7L/2xVatWdbqd5ffff8+YfeNLJUqUoG7duoB5OlP6cem+lv51h8uvd1bWr1/vcqvZpV8LwzCuLrlcULVq1YyupfQTshxp165dxu/dGYqdV11anGrYsKEPMxERkfxKBR4REZE85NLOhvRjswF69uyZMfz2s88+y7Huk7S0NP7v//7P4f1bt25l4cKFgNlJcWWBJ31ezN69ex0WEtLS0nj11VdzJN+ccM899wBgt9t55plnfJyNqVevXgQGmjvnp0+f7nQuzaRJk1zGu3QrWl7czmW1WjMGim/fvt3p623atCl16tQBYMmSJS6Pq8+rVq9eDZjde+lFRhERkZykAo+IiIgXLFy4kEmTJjntvNi9eze//fYbYH5Ar169esZ9ERERvPjii4A5NLlnz56XHa2dlbVr17p14tabb77Jzz//nOn2kydPctttt2UUmh599FGsVutla9ILPidPnmTixImZYqSmpjJ06FCXuXrTQw89lLFF5osvvuCxxx5zOog6Li6O//u//8vYjpYbypQpw2233QaY3Vt33313liczTZs2jc8++8xlvKpVq2b8/q+//sq5RHNQly5dALPQ5uz9YbFYePnllzP+/7bbbmPJkiUO1+/evTtPbb8Dc8ByeqdSp06dMv05EhERyQkasiwiIuIFR48e5dFHH+Wpp56iQ4cOXHfddVSrVo3w8HBOnTrF2rVrmT17dka3xaOPPprppJ0RI0awdu1aPvvsM/755x9atGhB9+7d6dSpExUqVMAwDE6dOsWmTZtYtGgRe/bsoXr16owfP95hXtHR0fz999/07duXAQMG0K1bN8LDw9m4cSNTpkzh5MmTALRo0YJHHnkk0+NHjhyZUZQaNWoUS5YsoVu3bhQvXpxdu3bx2WefsWvXLjp06MCuXbsuO/LaVyIiIvj+++9p3749cXFxTJw4kdmzZ3PLLbfQsGFDChcuzIULF9i3bx9r1qwhJiaG5ORkZs6cmat5vf322/z2228cP36cH374gQYNGjBo0CCqV6/OuXPn+PHHH5k/fz7Vq1encOHCrF+/3uHMo3bt2hEUFERqaipvvvkmFouFhg0bZpxeFRUVRYsWLXL19bjSv39/Ro8eDZidOR07dnS49uabb2bEiBG89957nD17lg4dOtC9e3e6detGuXLlSElJYc+ePcTExLB8+XKmTp1KvXr1vPVSXFqyZElGh1u/fv18m4yIiORfhoiIiOS6GTNmGIDLXxaLxXjkkUeMtLS0LOPY7Xbj5ZdfNkJCQtyK1759+0wx9u3bl3H/PffcY/z2229G0aJFHcZo3ry5cerUKYev7ZlnnnGaQ5s2bYwTJ04YlStXNgCjcuXKWcZ58cUXMx4TExOTjavsWZzt27cb1157rVvXMSQkxFiwYEGmGPfcc0/Gmn379jnNy521mzZtMsqXL+8wj4oVKxobNmww2rRpYwBG4cKFHT6fs6/Lle+L9u3bZ9zniidrXWncuLEBGNWrV3dr/dixY43g4GCXX68ZM2ZkeqyzPxOXmj59esba6dOnO13r7rW45ZZbDMAICwsz4uLiXL1MERGRbNEWLRERES+46667/r+9uwdJdo/DOH6JJVKpkQVFQRhiS2/g1BSJgxT0MrVYDkX0NjQaJEn0Ag3RUEQEETQ0Rgg5tNRSU1QQUUFYS0EgBC0u+pwhjnCGOuc8Tz5qz/cz/2+4+HNPP+77d+ny8lLLy8vq7u6W0+lUcXGxjEajbDabWlpaNDExobOzM62srHy4sNhgMGh6elqxWEyzs7Nqa2tTZWWlTCaTzGazampq5PV6FQqFdHp6+umvLH/zer06Pz/X5OSkXC6XioqKZLPZ1NraqrW1NZ2cnMhut3/4/MLCgqLRqDo7O1VeXq7CwkJVVVXJ4/Foc3NTR0dHqqio+Nmry5j6+nqdnZ1pf39fgUBALpdLVqtVRqNRpaWlam5u1sDAgLa3t/X8/Cyfz5fxTA0NDbq+vlY4HFZTU5NKSkpksVjU2NiomZkZnZ+fq6mpSfF4XNLnddsLCwva3d2Vz+dLvyO5ZmxsTJJ0f3+vk5OTfz0fCoV0d3enqakpud1ulZWVyWg0pu9oaGhIBwcH8vv9mY7+n729vSkSiUiS/H6/LBZLlhMBAL4rw48fOVitAAAAMubh4SG9oyUQCGh7ezu7gfC/vL6+ym63K5VKqaurS/v7+9mO9NMSiYRqa2v18vKi4eFhbWxsZDvSl9va2tLg4KAMBoOurq5YsAwAyBi+4AEAAMgj6+vr6cr59vb2LKf5NWazWcFgUNJ7O9zT01OWE32tZDKZ3oHV19fHcAcAkFEMeAAAAHLE6enpp41ee3t7CofDkt4r6vv7+39TsswZHR2Vw+FQIpHQ4uJituN8qd3dXd3e3spkMv2jCQwAgEygRQsAACBHhEIhXVxcqKOjQ263W1VVVUqlUnp8fFQ0GtXx8XH67NLS0qe7kfKF2WzW8vKyent7tbm5qWAwqOrq6mzH+mXJZFJzc3OS3hvmnE5nlhMBAL47BjwAAAA5JB6Pa2dn58Na9oKCAs3Pz2t8fPw3J8ucnp4efbe1kEajUTc3N9mOAQD4gzDgAQAAyBGrq6uKRCI6PDxULBZTPB7X29ubrFarHA6HPB6PRkZGVFdXl+2oAAAgx9CiBQAAAAAAkOdYsgwAAAAAAJDnGPAAAAAAAADkOQY8AAAAAAAAeY4BDwAAAAAAQJ5jwAMAAAAAAJDn/gKKD7HU0fRjoQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1152x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Define the color maps\n",
    "cmap_light = ListedColormap(['orange', 'cyan', 'cornflowerblue'])\n",
    "cmap_bold = ListedColormap(['darkorange', 'c', 'darkblue'])\n",
    "h = .01  # step size in the mesh\n",
    "\n",
    "# Create figure and axes with specified size and white background\n",
    "fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(16, 9), facecolor='white')\n",
    "\n",
    "# Determine the min and max values for x and y\n",
    "x_min, x_max = X_train.loc[:, 'sepal length (cm)'].values.min() - 1, X_train.loc[:, 'sepal length (cm)'].values.max() + 1\n",
    "y_min, y_max = X_train.loc[:, 'sepal width (cm)'].values.min() - 1, X_train.loc[:, 'sepal width (cm)'].values.max() + 1\n",
    "\n",
    "# Create a mesh grid\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
    "\n",
    "# Predict class using the mesh grid\n",
    "Z = knn.predict(np.c_[xx.ravel(), yy.ravel()])\n",
    "\n",
    "# Put the result into a color plot\n",
    "Z = Z.reshape(xx.shape)\n",
    "ax.pcolormesh(xx, yy, Z, cmap=cmap_light, shading='nearest')\n",
    "\n",
    "# Plot also the training points\n",
    "ax.scatter(X_train.loc[:, 'sepal length (cm)'].values,\n",
    "           X_train.loc[:, 'sepal width (cm)'].values,\n",
    "           c=y_train,\n",
    "           cmap=cmap_bold,\n",
    "           edgecolor='k',\n",
    "           s=130)\n",
    "\n",
    "# Set the limits of the plot\n",
    "ax.set_xlim(xx.min(), xx.max())\n",
    "ax.set_ylim(yy.min(), yy.max())\n",
    "\n",
    "ax.tick_params(labelsize = 18)\n",
    "\n",
    "ax.set_xlabel('sepal length (cm)', fontsize = 30)\n",
    "ax.set_ylabel('sepal width (cm)', fontsize = 30)\n",
    "ax.set_title(\"3-Class Classification (k = 5)\", fontsize = 48)\n",
    "\n",
    "fig.tight_layout()\n",
    "fig.savefig('KNN_3_Class_Classification.png', dpi = 950)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tuning k\n",
    "When k is low, KNN is considered a low bias, high variance model. \n",
    "\n",
    "When k is high, KNN is considered a high bias, low variance model. \n",
    "\n",
    "In the video, as K is increased, the classification spaces' borders become more distinct. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# Source not clear for this video\n",
    "# Maybe machinelearningknowledge?\n",
    "Video(\"images/KNNlowtoHigh.mp4\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Code that generated the images for the video video\n",
    "\n",
    "for num_neighbors in range(1, 51):\n",
    "\n",
    "    # Make an instance of the Model\n",
    "    knn = KNeighborsClassifier(n_neighbors=num_neighbors)\n",
    "\n",
    "    # Train the model on the data\n",
    "    knn.fit(X_train, y_train)\n",
    "\n",
    "    cmap_light = ListedColormap(['orange', 'cyan', 'cornflowerblue'])\n",
    "    cmap_bold = ListedColormap(['darkorange', 'c', 'darkblue'])\n",
    "    h = .005  # step size in the mesh\n",
    "\n",
    "\n",
    "    # Plot the decision boundary. For that, we will assign a color to each\n",
    "    # point in the mesh [x_min, x_max]x[y_min, y_max].\n",
    "    x_min, x_max = X_train.loc[:, 'sepal length (cm)'].values.min() - 1, X_train.loc[:, 'sepal length (cm)'].values.max() + 1\n",
    "    y_min, y_max = X_train.loc[:, 'sepal width (cm)'].values.min() - 1, X_train.loc[:, 'sepal width (cm)'].values.max() + 1\n",
    "\n",
    "    xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
    "                         np.arange(y_min, y_max, h))\n",
    "\n",
    "    \n",
    "    Z = knn.predict(np.c_[xx.ravel(), yy.ravel()])\n",
    "\n",
    "    # Put the result into a color plot\n",
    "    Z = Z.reshape(xx.shape)\n",
    "    plt.figure(figsize = (7,7))\n",
    "    plt.pcolormesh(xx, yy, Z, cmap=cmap_light )\n",
    "\n",
    "    # Plot also the training points\n",
    "    plt.scatter(X_train.loc[:, 'sepal length (cm)'].values,\n",
    "                X_train.loc[:, 'sepal width (cm)'].values,\n",
    "                c=y_train,\n",
    "                cmap=cmap_bold,\n",
    "                edgecolor='k',\n",
    "                s=40)\n",
    "    plt.xlim(xx.min(), xx.max())\n",
    "    plt.ylim(yy.min(), yy.max())\n",
    "    plt.xticks(fontsize = 15)\n",
    "    plt.yticks(fontsize = 15)\n",
    "    plt.title(\"3-Class classification k = \" + str(num_neighbors), fontsize = 15)\n",
    "    plt.savefig('imagesanimation/' + 'initial' + str(num_neighbors).zfill(4) + '.png', dpi = 5000)\n",
    "    plt.cla()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ignore\n",
    "!ffmpeg -framerate 1 -i 'initial%04d.png' -c:v libx264 -r 30 -pix_fmt yuv420p initial_002.mp4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Benefits of Pipelines\n",
    "Pipelines are a simply way to keep your data processing and modeling code organized. Specifically a pipeline bundles preprocessing and modeling steps so you can use the whole bundle as if it were a single step.\n",
    "\n",
    "* Cleaner Code: You don’t need to keep track of your training data at each step of processing. Accounting for data at each step of processing can get messy. \n",
    "* Fewer Bugs: There are fewer opportunities to mis-apply a step or forget a pre-processing step\n",
    "* More options for model testing\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Arrange Data into Features Matrix and Target Vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = df.loc[:, df.columns != 'target']\n",
    "y = df.loc[:, 'target'].values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Split the data into training and testing sets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(X,\n",
    "                                                    y,\n",
    "                                                    random_state = 0,\n",
    "                                                    test_size = .2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### KNN in `scikit-learn`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Reduce dimension to 2 with PCA\n",
    "std_clf = make_pipeline(StandardScaler(),\n",
    "                        PCA(n_components=2, random_state=0),\n",
    "                        KNeighborsClassifier(n_neighbors=5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "std_clf.fit(X_train, y_train)\n",
    "pred_test_std = std_clf.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('\\nPrediction accuracy for the standardized test dataset with PCA')\n",
    "print('{:.2%}\\n'.format(metrics.accuracy_score(y_test, pred_test_std)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Extract PCA from pipeline\n",
    "pca_std = std_clf.named_steps['pca']\n",
    "\n",
    "# Use PCA with scale on X_train data for visualization.\n",
    "scaler = std_clf.named_steps['standardscaler']\n",
    "X_train_std_transformed = pca_std.transform(scaler.transform(X_train))\n",
    "\n",
    "# visualize standardized  with PCA performed\n",
    "for l, c, m in zip(range(0, 3), ('blue', 'red', 'green'), ('^', 's', 'o')):\n",
    "    plt.scatter(X_train_std_transformed[y_train == l, 0],\n",
    "                X_train_std_transformed[y_train == l, 1],\n",
    "                color=c,\n",
    "                label='class %s' % l,\n",
    "                alpha=0.5,\n",
    "                marker=m\n",
    "                )\n",
    "\n",
    "plt.title('Standardized training dataset after PCA')\n",
    "plt.xlabel('1st principal component')\n",
    "plt.ylabel('2nd principal component')\n",
    "plt.legend(loc='upper right')\n",
    "plt.grid()\n",
    "\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
